#include <vector>
#include <string>
#include <cmath>
#include <iostream>

using namespace std;

// 1 <= n <= 3999
// 从十进制数字的高位向低位转换
// 2993
// i2r(2993) -> "MMCMXCIII"
//                商      余数
// 2993 / 1000    2      993
// 993 / 100      9      93
// 93  / 10       9      3
// 3   / 1        3      0
string i2r(int n) {
  vector<string> roman {
    "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I" 
  };

  vector<int> num {
    1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1
  };

  string result;

  for (int i = 0; i < roman.size(); ++i) {
    int quotient = n / num[i];

    for (int j = 0; j < quotient; ++j) {
      result += roman[i];
    }

    n %= num[i];
  }

  return result;
}

int main(int argc, char const *argv[])
{
  /* code */
  cout << i2r(1994) << endl;
  return 0;
}
